package cn.com.api.service;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import cn.com.api.entity.U_article;
import cn.com.api.entity.Ylj_Article_Label_Obj;
import cn.com.api.entity.Ylj_Article_Obj;
import cn.com.api.entity.Ylj_Index_article_Obj;
import cn.com.api.service.base.U_articleServiceBase;
import cn.com.util.PageInfo;

@Service
public abstract interface U_articleService extends U_articleServiceBase {
	// 首頁文章
	public abstract List<Ylj_Index_article_Obj> findU_articlesListPage(int exclideSize, int pageSize);

	// 文章分類
	public abstract List<Ylj_Article_Label_Obj> findLabel(int rootCateID, int rootCateType);

	// 文章分類
	public abstract List<Ylj_Article_Label_Obj> findAllLabel();

	// 文章總數
	public abstract int queryArticleTotal(String user_id, String keyword, String cate_id);

	// 文章列表
	public abstract List<Ylj_Article_Obj> queryArticleListPage(String user_id, String keyword, String cate_id,
			String rootCateType, int exclideSize, int pageSize);

	// 首页获取文章列表
	public abstract List<Ylj_Article_Obj> queryIndexArticleListPage(String id, String string, int i);

	// 文章分類名
	public abstract List<String> findCateNames(int article_id);

	// 添加文章返回id
	public abstract int insertU_articleReturnId(U_article article);

	// 插入文章分類關聯表
	// public abstract void insertArticle_cate(String article_id, String
	// cate_id);

	// 插入文章分類表
	public boolean addCate(String level1, String level2, String cate_name, String cate_desc, String sort);

	// 插入文章label
	public boolean addLabel(String level1, String cate_name, String sort);

	// 查询分类下的文章(含子类)
	public List<U_article> findU_articlesByCateId(String cate_id);

	// 查询文章(已排序)
	public List<U_article> findU_articlesOrderBy(Integer parent_Id, String title);

	// 模糊查询文章
	public List<Map<String, Object>> findArticleLikeTitle(String title);

	public List<Map<String, Object>> allfindU_articles();

	// 根据条件查询文章
	public List<U_article> findU_articlesByMap(Map param, PageInfo page);

	// // 查询收藏文章
	// public List<U_article> getFavoriteArticles(Map param, PageInfo page);

	// 查询关注文章
	// public List<ApiU_follow> getFollowArticles(Map param, PageInfo pageInfo);

	// 根据文章ID取文章详情
	public U_article findU_articleInfoByMap(Map param);

	// 获取推荐的头条文章列表
	public List<U_article> getRecommendArticles(String user_id, PageInfo page);

	// 文章/用户评论数
	public Integer getCommentCountByMap(Map param);

	// 获取收藏的文章列表
	public List<U_article> getArticleFavoriteByUserID(Map param, PageInfo page);

	// 查询文章
	public List<U_article> seachU_articles(String keyword, PageInfo pageInfo);

	// 获取自媒体所发的头条
	public List<U_article> findU_articlesByUserID(Map map, PageInfo pageInfo);

	// APP首页上滚动的头条
	public List<U_article> getHomePageArticleList();

	// 查询文章
	public List<U_article> getArticles(String cate_id, String title, String user_id) throws Exception;
}
